LEÇON 2

Structures de Données et Boucles en Python

Listes, Dictionnaires, Boucles While et Compréhensions

Français - Listes et Dictionnaires

1. Les Listes (Lists)

Les listes sont des collections ordonnées et modifiables d'éléments. Elles peuvent contenir différents types de données.

# Création et manipulation de listes
fruits = ["pomme", "banane", "orange"]
nombres = [1, 2, 3, 4, 5]
mixte = ["texte", 42, True, 3.14]

# Accès aux éléments
print(fruits[0]) # "pomme" (premier élément)
print(fruits[-1]) # "orange" (dernier élément)

# Modification de liste
fruits[1] = "kiwi"
fruits.append("fraise") # Ajoute à la fin
fruits.insert(1, "mangue") # Insère à la position 1

2. Les Dictionnaires (Dictionaries)

Les dictionnaires stockent des paires clé-valeur. Les clés doivent être uniques et immuables.

# Création d'un dictionnaire
etudiant = {
    "nom": "Alice",
    "age": 22,
    "cours": ["Math", "Python", "Histoire"],
    "moyenne": 15.5
}

# Accès aux valeurs
print(etudiant["nom"]) # "Alice"
print(etudiant.get("age")) # 22

# Modification et ajout
etudiant["age"] = 23
etudiant["ville"] = "Paris" # Ajoute une nouvelle clé

3. Boucles While

La boucle while répète un bloc de code tant qu'une condition est vraie.

# Boucle while simple
compteur = 0
while compteur < 5:
    print("Compteur:", compteur)
    compteur += 1 # Important: modifier la condition

# While avec break et continue
while True:
    reponse = input("Tapez 'quit' pour sortir: ")
    if reponse == "quit":
        break # Sort de la boucle
    elif reponse == "skip":
        continue # Passe à l'itération suivante
    print("Vous avez dit:", reponse)

4. Compréhensions de Listes

Syntaxe concise pour créer des listes basées sur des séquences existantes.

# Créer une liste de carrés
carres = [x**2 for x in range(10)]
print(carres) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Avec condition
pairs = [x for x in range(20) if x % 2 == 0]
print(pairs) # Nombres pairs de 0 à 18

# Compréhension de dictionnaire
carres_dict = {x: x**2 for x in range(5)}
print(carres_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

English - Lists, Dictionaries and Loops

1. Lists

Lists are ordered, mutable collections of items. They can contain different data types.

# Creating and manipulating lists
fruits = ["apple", "banana", "orange"]
numbers = [1, 2, 3, 4, 5]
mixed = ["text", 42, True, 3.14]

# Accessing elements
print(fruits[0]) # "apple" (first element)
print(fruits[-1]) # "orange" (last element)

# Modifying lists
fruits[1] = "kiwi"
fruits.append("strawberry") # Adds to the end
fruits.insert(1, "mango") # Inserts at position 1

2. Dictionaries

Dictionaries store key-value pairs. Keys must be unique and immutable.

# Creating a dictionary
student = {
    "name": "Alice",
    "age": 22,
    "courses": ["Math", "Python", "History"],
    "average": 15.5
}

# Accessing values
print(student["name"]) # "Alice"
print(student.get("age")) # 22

# Modifying and adding
student["age"] = 23
student["city"] = "Paris" # Adds a new key

3. While Loops

The while loop repeats a code block as long as a condition is true.

# Simple while loop
counter = 0
while counter < 5:
    print("Counter:", counter)
    counter += 1 # Important: modify the condition

# While with break and continue
while True:
    response = input("Type 'quit' to exit: ")
    if response == "quit":
        break # Exits the loop
    elif response == "skip":
        continue # Skips to next iteration
    print("You said:", response)

4. List Comprehensions

Concise syntax for creating lists based on existing sequences.

# Create a list of squares
squares = [x**2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# With condition
evens = [x for x in range(20) if x % 2 == 0]
print(evens) # Even numbers from 0 to 18

# Dictionary comprehension
squares_dict = {x: x**2 for x in range(5)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}